#include "common.hpp"

//写端
int main()
{
    //1、创建管道
    //CreatePipe();

    //1、以写的方式打开管道文件
    int wfd=open(PIPE_NAME,O_WRONLY);
    if(wfd<0)//文件打开失败
    {
        cout<<"以写方式打开管道失败："<<strerror(errno)<<endl;
        exit(0);
    }
    
    cout<<"写端打开管道成功"<<endl;//只有双方同时open管道，管道才能打开成功，否则，先open的一方会进入阻塞状态

    //2、向管道中写入数据
    while(true)
    {
        char buffer[1024];//暂存要发送的消息
        const char* str="i am process A,can you get my message?";
        snprintf(buffer,sizeof(buffer),"%s,mypid:%d  |  ",str,getpid());

        ssize_t n=write(wfd,buffer,strlen(buffer));//向管道中写入数据
        if(n!=strlen(buffer))
        {
            cout<<"数据写入失败:"<<strerror(errno)<<endl;
            exit(0);
        }

        sleep(2);//每隔两秒写入一次数据
    }

    close(wfd);//关闭写端文件描述符

    //4、删除管道
    //DeletePipe();//删除管道

    return 0;
}